Model Table GL ANALYSIS MEASURES

Represents all measures related to GL ANALYSIS.

Attributes

Attribute Description (where applicable)

Measures (table to be generated as far as possible)

Aggregation of measures is based on SUM if not explicitly noted.

This section describes the basic measures in the cube. These are either measures defined in the core Information Source, in the model itself or in the ETL process. The columns have the following meaning:

Measure Calculated Y/N Contains Time Intelligence Y/N Definition/Note (where applicable) Aggregation Type Hidden Y/N Tabular Expression
ACTYNSUMNSUM('GL ANALYSIS'[ACT_PERIOD_DOM])
ACT (Acc Calendar)N IF (HASONEVALUE('ACCOUNTING PERIOD'[Accounting Year]), SUMX('GL ANALYSIS', [ACT_OB_PERIOD_DOM] + [ACT_PERIOD_DOM])) // Uses the HASONEVALUE function to suppress display of totals that sum up multiple years.
ACT CreditYNSUMNSUM('GL ANALYSIS'[ACT_PERIOD_CREDIT_DOM])
ACT Credit TransYNSUMNSUM('GL ANALYSIS'[ACT_PERIOD_CREDIT_CURR])
ACT Credit XR1 (Period Based)YNSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 1'[Currency Code X-Rate 1]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY'[Currency Code]) ,"@GLAmount",CALCULATE([ACT Credit]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 1'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
ACT Credit XR2 (Period Based)YNSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 2'[Currency Code X-Rate 2]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY 2'[Currency Code]) ,"@GLAmount",CALCULATE([ACT Credit]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 2'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
ACT Credit YTD TransYYSUMNCALCULATE([ACT Credit Trans], DATESYTD('REPORTING PERIOD'[ID])) + CALCULATE(SUM('GL ANALYSIS'[OB_PERIOD_CURR]), DATESYTD('REPORTING PERIOD'[ID]))
ACT DebitYNSUMNSUM('GL ANALYSIS'[ACT_PERIOD_DEBET_DOM])
ACT Debit TransYNSUMNSUM('GL ANALYSIS'[ACT_PERIOD_DEBET_CURR])
ACT Debit XR1 (Period Based)YNSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 1'[Currency Code X-Rate 1]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY'[Currency Code]) ,"@GLAmount",CALCULATE([ACT Debit]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 1'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
ACT Debit XR2 (Period Based)YNSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 2'[Currency Code X-Rate 2]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY 2'[Currency Code]) ,"@GLAmount",CALCULATE([ACT Debit]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 2'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
ACT Debit YTD TransYYSUMNCALCULATE([ACT Debit Trans], DATESYTD('REPORTING PERIOD'[ID])) + CALCULATE(SUM('GL ANALYSIS'[OB_PERIOD_CURR]), DATESYTD('REPORTING PERIOD'[ID]))
ACT OBYNSUMNIF(ISBLANK([ACT YTD]) , BLANK() ,([ACT YTD] - [ACT]))
ACT OB (Acc Calendar)N VAR CurrAccYear = SELECTEDVALUE('ACCOUNTING PERIOD'[Accounting Year]) // Uses the SELECTEDVALUE function to suppress display of totals that sum up multiple years. Var CurrAccPeriod = IF( SELECTEDVALUE('ACCOUNTING PERIOD'[Accounting Period No]) = 0, 1, SELECTEDVALUE('ACCOUNTING PERIOD'[Accounting Period No])) VAR RunningTotal= CALCULATE( [ACT (Acc Calendar)], FILTER(ALL('ACCOUNTING PERIOD'), 'ACCOUNTING PERIOD'[Accounting Year]=CurrAccYear && 'ACCOUNTING PERIOD'[Accounting Period No]< CurrAccPeriod)) RETURN RunningTotal
ACT OB Trans YNSUMNIF(ISBLANK([ACT YTD Trans]) , BLANK() ,([ACT YTD Trans] - [ACT Trans]))
ACT OB XR1 (Period Based)YNSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 1'[Currency Code X-Rate 1]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY'[Currency Code]) ,"@GLAmount",CALCULATE([ACT OB]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 1'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
ACT OB XR1 (YTD Based)YYSUMN VAR CurrPeriod = MAX('REPORTING PERIOD'[Reporting Period]) VAR MonthsInPeriod = MAX('REPORTING PERIOD'[Months In Period]) RETURN IF ( CurrPeriod = 1, CALCULATE([ACT OB XR1 (Period Based)]), CALCULATE([ACT YTD XR1 (YTD Based)], DATEADD('REPORTING PERIOD'[ID], -MonthsInPeriod, MONTH) ) )
ACT OB XR2 (Period Based)YNSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 2'[Currency Code X-Rate 2]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY 2'[Currency Code]) ,"@GLAmount",CALCULATE([ACT OB]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 2'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
ACT OB XR2 (YTD Based)YYSUMN VAR CurrPeriod = MAX('REPORTING PERIOD'[Reporting Period]) VAR MonthsInPeriod = MAX('REPORTING PERIOD'[Months In Period]) RETURN IF ( CurrPeriod = 1, CALCULATE([ACT OB XR2 (Period Based)]), CALCULATE([ACT YTD XR2 (YTD Based)], DATEADD('REPORTING PERIOD'[ID], -MonthsInPeriod, MONTH) ) )
ACT PY R12 TransYYSUMNCALCULATE([ACT R12 Trans], DATEADD('REPORTING PERIOD'[ID],-12,month))
ACT PY R12 XR1 (Period Based)YYSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 1'[Currency Code X-Rate 1]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY'[Currency Code]) ,"@GLAmount",CALCULATE([ACT PY R12]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 1'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
ACT PY R12 XR1 (YTD Based)YYSUMN CALCULATE([ACT R12 XR1 (YTD Based)], DATEADD('REPORTING PERIOD'[ID],-12,month))
ACT PY R12 XR2 (Period Based)YYSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 2'[Currency Code X-Rate 2]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY 2'[Currency Code]) ,"@GLAmount",CALCULATE([ACT PY R12]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 2'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
ACT PY R12 XR2 (YTD Based)YYSUMN CALCULATE([ACT R12 XR2 (YTD Based)], DATEADD('REPORTING PERIOD'[ID],-12,month))
ACT PY TransYYSUMNCALCULATE([ACT Trans], DATEADD('REPORTING PERIOD'[ID],-12,month))
ACT PY XR1 (Period Based)YYSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 1'[Currency Code X-Rate 1]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY'[Currency Code]) ,"@GLAmount",CALCULATE([ACT PY]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 1'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
ACT PY XR1 (YTD Based)YYSUMN CALCULATE([ACT XR1 (YTD Based)], DATEADD('REPORTING PERIOD'[ID],-12,month))
ACT PY XR2 (Period Based)YYSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 2'[Currency Code X-Rate 2]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY 2'[Currency Code]) ,"@GLAmount",CALCULATE([ACT PY]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 2'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
ACT PY XR2 (YTD Based)YYSUMN CALCULATE([ACT XR2 (YTD Based)], DATEADD('REPORTING PERIOD'[ID],-12,month))
ACT PY YTD TransYYSUMNCALCULATE([ACT YTD Trans], DATEADD('REPORTING PERIOD'[ID],-12,month))
ACT PY YTD XR1 (Period Based)N CALCULATE([ACT YTD XR1 (Period Based)], DATEADD('REPORTING PERIOD'[ID],-12,month))
ACT PY YTD XR1 (YTD Based)YYSUMN CALCULATE([ACT YTD XR1 (YTD Based)], DATEADD('REPORTING PERIOD'[ID],-12,month))
ACT PY YTD XR2 (Period Based)N CALCULATE([ACT YTD XR2 (Period Based)], DATEADD('REPORTING PERIOD'[ID],-12,month))
ACT PY YTD XR2 (YTD Based)YYSUMN CALCULATE([ACT YTD XR2 (YTD Based)], DATEADD('REPORTING PERIOD'[ID],-12,month))
ACT R12 TransYYSUMNVAR lastDatePrevMonth = LASTDATE(PARALLELPERIOD('REPORTING PERIOD'[ID],0 , month)) VAR firstDatePrevYear = FIRSTDATE(PARALLELPERIOD('REPORTING PERIOD'[ID],-11 , month)) RETURN CALCULATE( [ACT Trans], DATESBETWEEN('REPORTING PERIOD'[ID], firstDatePrevYear,IF(ISBLANK(lastDatePrevMonth), CALCULATE(MIN('REPORTING PERIOD'[ID]), ALL('REPORTING PERIOD')), lastDatePrevMonth ) ) )
ACT R12 XR1 (Period Based)YYSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 1'[Currency Code X-Rate 1]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY'[Currency Code]) ,"@GLAmount",CALCULATE([ACT R12]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 1'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
ACT R12 XR1 (YTD Based)YYSUMN VAR lastDatePrevMonth = LASTDATE(PARALLELPERIOD('REPORTING PERIOD'[ID],0 , month)) VAR firstDatePrevYear = FIRSTDATE(PARALLELPERIOD('REPORTING PERIOD'[ID],-11 , month)) RETURN CALCULATE ( [ACT XR1 (YTD Based)], DATESBETWEEN ( 'REPORTING PERIOD'[ID], firstDatePrevYear, IF ( ISBLANK(lastDatePrevMonth), CALCULATE(MIN('REPORTING PERIOD'[ID]), ALL('REPORTING PERIOD')), lastDatePrevMonth ) ) )
ACT R12 XR2 (Period Based)YYSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 2'[Currency Code X-Rate 2]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY 2'[Currency Code]) ,"@GLAmount",CALCULATE([ACT R12]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 2'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
ACT R12 XR2 (YTD Based)YYSUMN VAR lastDatePrevMonth = LASTDATE(PARALLELPERIOD('REPORTING PERIOD'[ID],0 , month)) VAR firstDatePrevYear = FIRSTDATE(PARALLELPERIOD('REPORTING PERIOD'[ID],-11 , month)) RETURN CALCULATE ( [ACT XR2 (YTD Based)], DATESBETWEEN ( 'REPORTING PERIOD'[ID], firstDatePrevYear, IF ( ISBLANK(lastDatePrevMonth), CALCULATE(MIN('REPORTING PERIOD'[ID]), ALL('REPORTING PERIOD')), lastDatePrevMonth ) ) )
ACT TransYNSUMNSUM('GL ANALYSIS'[ACT_PERIOD_CURR])
ACT XR1 (Period Based)YNSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 1'[Currency Code X-Rate 1]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY'[Currency Code]) ,"@GLAmount",CALCULATE([ACT]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 1'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
ACT XR1 (YTD Based)YYSUMNIF ( 'GL ANALYSIS MEASURES'[HasOneValuePeriod] = FALSE(), "", [ACT YTD XR1 (YTD Based)] - [ACT OB XR1 (YTD Based)] )
ACT XR2 (Period Based)YNSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 2'[Currency Code X-Rate 2]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY 2'[Currency Code]) ,"@GLAmount",CALCULATE([ACT]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 2'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
ACT XR2 (YTD Based)YYSUMNIF ( 'GL ANALYSIS MEASURES'[HasOneValuePeriod] = FALSE(),"", [ACT YTD XR2 (YTD Based)] - [ACT OB XR2 (YTD Based)] )
ACT YTD (Acc Calendar)N VAR CurrentAccPeriodNo = MAX('ACCOUNTING PERIOD'[Accounting Period No]) VAR CurrentAccYear = MAX('ACCOUNTING PERIOD'[Accounting Year]) VAR RunningTotal = CALCULATE([ACT (Acc Calendar)], FILTER(ALL('ACCOUNTING PERIOD'), 'ACCOUNTING PERIOD'[Accounting Year] = CurrentAccYear && 'ACCOUNTING PERIOD'[Accounting Period No] <= CurrentAccPeriodNo)) RETURN IF( HASONEVALUE('ACCOUNTING PERIOD'[Accounting Year]), RunningTotal) // Uses the HASONEVALUE function to suppress display of totals that sum up multiple years.
ACT YTD TransYYSUMNCALCULATE([ACT Trans], DATESYTD('REPORTING PERIOD'[ID])) + CALCULATE(SUM('GL ANALYSIS'[ACT_OB_PERIOD_CURR]), DATESYTD('REPORTING PERIOD'[ID]))
ACT YTD XR1 (Period Based)YYSUMN // calulcates the YTD value based on ACTuals based on Cross Rate 1 table according to the formula: // 'opening balance period zero using rate XR1 last date prev year' + Sum of ACT value * XR1 for each period up to current context period) [ACTOBPeriodZeroXR1] + CALCULATE([ACT XR1 (Period Based)], DATESYTD('REPORTING PERIOD'[ID]) )
ACT YTD XR1 (YTD Based)YYSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 1'[Currency Code X-Rate 1]), VAR RestatedAmount = ADDCOLUMNS ( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY'[Currency Code]) ,"@GLAmount",CALCULATE([ACT YTD]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 1'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
ACT YTD XR2 (Period Based)YYSUMN // calulcates the YTD value based on ACTuals based on Cross Rate 2 table according to the formula: // 'opening balance period zero using rate XR2 last date prev year' + Sum of ACT value * XR2 for each period up to current context period) [ACTOBPeriodZeroXR2] + CALCULATE([ACT XR2 (Period Based)], DATESYTD('REPORTING PERIOD'[ID]) )
ACT YTD XR2 (YTD Based)YYSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 2'[Currency Code X-Rate 2]), VAR RestatedAmount = ADDCOLUMNS ( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY 2'[Currency Code]) ,"@GLAmount",CALCULATE([ACT YTD]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 2'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
ACTOBPeriodZeroYYSUMN //Calulcates the incoming balance related to [ACT], acc period 0, as defined in the underlying data source // The idea is to calculate the same value for all periods VAR UntilDate = MAX('REPORTING PERIOD'[Period Until Date]) VAR LastDatePY = MAX('REPORTING PERIOD'[Max Reporting Date PY]) VAR DiffInDays = DATEDIFF(LastDatePY, UntilDate, DAY) RETURN CALCULATE ( // go back to last data in previous reporting year + 1 [ACT OB], DATEADD('REPORTING PERIOD'[ID],-DiffInDays+1, DAY) )
ACTOBPeriodZeroXR1YYSUMN // Calulates the OB in acc period 0 (as defined in the transactional source) into the selected XRate1 currency using the rate as // defined for the last date in the previous reporting yser. Should be the same value for any reporting period IF( HASONEVALUE('CURRENCY CODE X-RATE 1'[Currency Code X-Rate 1]), VAR RestatedAmount = ADDCOLUMNS ( SUMMARIZE ( 'GL ANALYSIS' , 'REPORTING PERIOD'[ID], 'REPORTING FROM CURRENCY'[Currency Code] ) ,"@GLAmount", CALCULATE([ACTOBPeriodZero]) ,"@XRATE", CALCULATE(SELECTEDVALUE('X-RATES 1'[PREV_YEAR_LAST_PERIOD_RATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRATE]) RETURN XAmount )
ACTOBPeriodZeroXR2YYSUMN // Calculates the OB in acc period 0 (as defined in the transactional source) into the selected XRate2 currency using the rate as // defined for the last date in the previous reporting user. Should be the same value for any reporting period IF( HASONEVALUE('CURRENCY CODE X-RATE 2'[Currency Code X-Rate 2]), VAR RestatedAmount = ADDCOLUMNS ( SUMMARIZE ( 'GL ANALYSIS' , 'REPORTING PERIOD'[ID], 'REPORTING FROM CURRENCY 2'[Currency Code] ) ,"@GLAmount", CALCULATE([ACTOBPeriodZero]) ,"@XRATE", CALCULATE(SELECTEDVALUE('X-RATES 2'[PREV_YEAR_LAST_PERIOD_RATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRATE]) RETURN XAmount )
BUDYNSUMNSUM('GL ANALYSIS'[BUD_PERIOD_DOM])
BUD OBYNSUMNIF(ISBLANK([BUD YTD]) , BLANK() ,([BUD YTD] - [BUD]))
BUD OB Trans YNSUMNIF(ISBLANK([BUD YTD Trans]) , BLANK() ,([BUD YTD Trans] - [BUD Trans]))
BUD OB XR1 (Period Based)YNSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 1'[Currency Code X-Rate 1]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY'[Currency Code]) ,"@GLAmount",CALCULATE([BUD OB]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 1'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
BUD OB XR1 (YTD Based)YYSUMN VAR CurrPeriod = MAX('REPORTING PERIOD'[Reporting Period]) VAR MonthsInPeriod = MAX('REPORTING PERIOD'[Months In Period]) RETURN IF ( CurrPeriod = 1, CALCULATE([BUD OB XR1 (Period Based)]), CALCULATE([BUD YTD XR1 (YTD Based)], DATEADD('REPORTING PERIOD'[ID], -MonthsInPeriod, MONTH) ) )
BUD OB XR2 (Period Based)YNSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 2'[Currency Code X-Rate 2]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY 2'[Currency Code]) ,"@GLAmount",CALCULATE([BUD OB]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 2'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
BUD OB XR2 (YTD Based)YYSUMN VAR CurrPeriod = MAX('REPORTING PERIOD'[Reporting Period]) VAR MonthsInPeriod = MAX('REPORTING PERIOD'[Months In Period]) RETURN IF ( CurrPeriod = 1, CALCULATE([BUD OB XR2 (Period Based)]), CALCULATE([BUD YTD XR2 (YTD Based)], DATEADD('REPORTING PERIOD'[ID], -MonthsInPeriod, MONTH) ) )
BUD PY R12 TransYYSUMNCALCULATE([BUD R12 Trans], DATEADD('REPORTING PERIOD'[ID],-12,month))
BUD PY R12 XR1 (Period Based)YYSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 1'[Currency Code X-Rate 1]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY'[Currency Code]) ,"@GLAmount",CALCULATE([BUD PY R12]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 1'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
BUD PY R12 XR1 (YTD Based)YYSUMN CALCULATE([BUD R12 XR1 (YTD Based)], DATEADD('REPORTING PERIOD'[ID],-12,month))
BUD PY R12 XR2 (Period Based)YYSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 2'[Currency Code X-Rate 2]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY 2'[Currency Code]) ,"@GLAmount",CALCULATE([BUD PY R12]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 2'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
BUD PY R12 XR2 (YTD Based)YYSUMN CALCULATE([BUD R12 XR2 (YTD Based)], DATEADD('REPORTING PERIOD'[ID],-12,month))
BUD PY TransYYSUMNCALCULATE([BUD Trans], DATEADD('REPORTING PERIOD'[ID],-12,month))
BUD PY XR1 (Period Based)YYSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 1'[Currency Code X-Rate 1]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY'[Currency Code]) ,"@GLAmount",CALCULATE([BUD PY]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 1'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
BUD PY XR1 (YTD Based)YYSUMN CALCULATE([BUD XR1 (YTD Based)], DATEADD('REPORTING PERIOD'[ID],-12,month))
BUD PY XR2 (Period Based)YYSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 2'[Currency Code X-Rate 2]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY 2'[Currency Code]) ,"@GLAmount",CALCULATE([BUD PY]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 2'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
BUD PY XR2 (YTD Based)YYSUMN CALCULATE([BUD XR2 (YTD Based)], DATEADD('REPORTING PERIOD'[ID],-12,month))
BUD PY YTD TransYYSUMNCALCULATE([BUD YTD Trans], DATEADD('REPORTING PERIOD'[ID],-12,month))
BUD PY YTD XR1 (YTD Based)YYSUMN CALCULATE([BUD YTD XR1 (YTD Based)], DATEADD('REPORTING PERIOD'[ID],-12,month))
BUD PY YTD XR2 (YTD Based)YYSUMN CALCULATE([BUD YTD XR2 (YTD Based)], DATEADD('REPORTING PERIOD'[ID],-12,month))
BUD R12 TransYYSUMNCALCULATE([BUD Trans], DATESBETWEEN('REPORTING PERIOD'[ID], FIRSTDATE(PARALLELPERIOD('REPORTING PERIOD'[ID],-11,month)), LASTDATE(PARALLELPERIOD('REPORTING PERIOD'[ID],0,month)) ) )
BUD R12 XR1 (Period Based)YYSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 1'[Currency Code X-Rate 1]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY'[Currency Code]) ,"@GLAmount",CALCULATE([BUD R12]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 1'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
BUD R12 XR1 (YTD Based)YYSUMN VAR lastDatePrevMonth = LASTDATE(PARALLELPERIOD('REPORTING PERIOD'[ID],0 , month)) VAR firstDatePrevYear = FIRSTDATE(PARALLELPERIOD('REPORTING PERIOD'[ID],-11 , month)) RETURN CALCULATE ( [BUD XR1 (YTD Based)], DATESBETWEEN ( 'REPORTING PERIOD'[ID], firstDatePrevYear, IF ( ISBLANK(lastDatePrevMonth), CALCULATE(MIN('REPORTING PERIOD'[ID]), ALL('REPORTING PERIOD')), lastDatePrevMonth ) ) )
BUD R12 XR2 (Period Based)YYSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 2'[Currency Code X-Rate 2]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY 2'[Currency Code]) ,"@GLAmount",CALCULATE([BUD R12]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 2'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
BUD R12 XR2 (YTD Based)YYSUMN VAR lastDatePrevMonth = LASTDATE(PARALLELPERIOD('REPORTING PERIOD'[ID],0 , month)) VAR firstDatePrevYear = FIRSTDATE(PARALLELPERIOD('REPORTING PERIOD'[ID],-11 , month)) RETURN CALCULATE ( [BUD XR2 (YTD Based)], DATESBETWEEN ( 'REPORTING PERIOD'[ID], firstDatePrevYear, IF ( ISBLANK(lastDatePrevMonth), CALCULATE(MIN('REPORTING PERIOD'[ID]), ALL('REPORTING PERIOD')), lastDatePrevMonth ) ) )
BUD TransYNSUMNSUM('GL ANALYSIS'[BUD_PERIOD_CURR])
BUD XR1 (Period Based)YNSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 1'[Currency Code X-Rate 1]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY'[Currency Code]) ,"@GLAmount",CALCULATE([BUD]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 1'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
BUD XR1 (YTD Based)YYSUMNIF ( 'GL ANALYSIS MEASURES'[HasOneValuePeriod] = FALSE(),"", [BUD YTD XR1 (YTD Based)] - [BUD OB XR1 (YTD Based)] )
BUD XR2 (Period Based)YNSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 2'[Currency Code X-Rate 2]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY 2'[Currency Code]) ,"@GLAmount",CALCULATE([BUD]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 2'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
BUD XR2 (YTD Based)YYSUMNIF ( 'GL ANALYSIS MEASURES'[HasOneValuePeriod] = FALSE(),"", [BUD YTD XR2 (YTD Based)] - [BUD OB XR2 (YTD Based)] )
BUD YTD TransYYSUMNCALCULATE([BUD Trans], DATESYTD('REPORTING PERIOD'[ID])) + CALCULATE(SUM('GL ANALYSIS'[BUD_OB_PERIOD_CURR]), DATESYTD('REPORTING PERIOD'[ID]))
BUD YTD XR1 (Period Based)YYSUMN // calulcates the YTD value based on BUD based on Cross Rate 1 table according to the formula: // 'opening balance period zero using rate XR1 last date prev year' + Sum of BUD value * XR1 for each period up to current context period) [BUDOBPeriodZeroXR1] + CALCULATE([BUD XR1 (Period Based)], DATESYTD('REPORTING PERIOD'[ID]) )
BUD YTD XR1 (YTD Based)YYSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 1'[Currency Code X-Rate 1]), VAR RestatedAmount = ADDCOLUMNS ( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY'[Currency Code]) ,"@GLAmount",CALCULATE([BUD YTD]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 1'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
BUD YTD XR2 (Period Based)YYSUMN // calulcates the YTD value based on BUD based on Cross Rate 2 table according to the formula: // 'opening balance period zero using rate XR2 last date prev year' + Sum of BUD value * XR2 for each period up to current context period) [BUDOBPeriodZeroXR2] + CALCULATE([BUD XR2 (Period Based)], DATESYTD('REPORTING PERIOD'[ID]) )
BUD YTD XR2 (YTD Based)YYSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 2'[Currency Code X-Rate 2]), VAR RestatedAmount = ADDCOLUMNS ( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY 2'[Currency Code]) ,"@GLAmount",CALCULATE([BUD YTD]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 2'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
BUDOBPeriodZeroYYSUMN //Calulcates the incoming balance related to [BUD], acc period 0, as defined in the underlying data source // The idea is to calculate the same value for all periods VAR UntilDate = MAX('REPORTING PERIOD'[Period Until Date]) VAR LastDatePY = MAX('REPORTING PERIOD'[Max Reporting Date PY]) VAR DiffInDays = DATEDIFF(LastDatePY, UntilDate, DAY) RETURN CALCULATE ( // go back to last data in previous reporting year + 1 [BUD OB], DATEADD('REPORTING PERIOD'[ID],-DiffInDays+1, DAY) )
BUDOBPeriodZeroXR1YYSUMN // Calulates the OB in acc period 0 (as defined in the transactional source) into the selected XRate1 currency using the rate as // defined for the last date in the previous reporting yser. Should be the same value for any reporting period IF( HASONEVALUE('CURRENCY CODE X-RATE 1'[Currency Code X-Rate 1]), VAR RestatedAmount = ADDCOLUMNS ( SUMMARIZE ( 'GL ANALYSIS' , 'REPORTING PERIOD'[ID], 'REPORTING FROM CURRENCY'[Currency Code] ) ,"@GLAmount", CALCULATE([BUDOBPeriodZero]) ,"@XRATE", CALCULATE(SELECTEDVALUE('X-RATES 1'[PREV_YEAR_LAST_PERIOD_RATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRATE]) RETURN XAmount )
BUDOBPeriodZeroXR2YYSUMN // Calculates the OB in acc period 0 (as defined in the transactional source) into the selected XRate2 currency using the rate as // defined for the last date in the previous reporting user. Should be the same value for any reporting period IF( HASONEVALUE('CURRENCY CODE X-RATE 2'[Currency Code X-Rate 2]), VAR RestatedAmount = ADDCOLUMNS ( SUMMARIZE ( 'GL ANALYSIS' , 'REPORTING PERIOD'[ID], 'REPORTING FROM CURRENCY 2'[Currency Code] ) ,"@GLAmount", CALCULATE([BUDOBPeriodZero]) ,"@XRATE", CALCULATE(SELECTEDVALUE('X-RATES 2'[PREV_YEAR_LAST_PERIOD_RATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRATE]) RETURN XAmount )
CFCYNSUMNSUM('GL ANALYSIS'[CFC_PERIOD_DOM])
CFC OBYNSUMNIF(ISBLANK([CFC YTD]) , BLANK() ,([CFC YTD] - [CFC]))
CFC OB TransYNSUMNIF(ISBLANK([CFC YTD Trans]) , BLANK() ,([CFC YTD Trans] - [CFC Trans]))
CFC OB XR1 (Period Based)YNSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 1'[Currency Code X-Rate 1]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY'[Currency Code]) ,"@GLAmount",CALCULATE([CFC OB]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 1'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
CFC OB XR1 (YTD Based)YYSUMN VAR CurrPeriod = MAX('REPORTING PERIOD'[Reporting Period]) VAR MonthsInPeriod = MAX('REPORTING PERIOD'[Months In Period]) RETURN IF ( CurrPeriod = 1, CALCULATE([CFC OB XR1 (Period Based)]), CALCULATE([CFC YTD XR1 (YTD Based)], DATEADD('REPORTING PERIOD'[ID], -MonthsInPeriod, MONTH) ) )
CFC OB XR2 (Period Based)YNSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 2'[Currency Code X-Rate 2]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY 2'[Currency Code]) ,"@GLAmount",CALCULATE([CFC OB]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 2'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
CFC OB XR2 (YTD Based)YYSUMN VAR CurrPeriod = MAX('REPORTING PERIOD'[Reporting Period]) VAR MonthsInPeriod = MAX('REPORTING PERIOD'[Months In Period]) RETURN IF ( CurrPeriod = 1, CALCULATE([CFC OB XR2 (Period Based)]), CALCULATE([CFC YTD XR2 (YTD Based)], DATEADD('REPORTING PERIOD'[ID], -MonthsInPeriod, MONTH) ) )
CFC R12 TransYYSUMNCALCULATE([CFC Trans], DATESBETWEEN('REPORTING PERIOD'[ID], FIRSTDATE(PARALLELPERIOD('REPORTING PERIOD'[ID],-11,month)), LASTDATE(PARALLELPERIOD('REPORTING PERIOD'[ID],0,month)) ) )
CFC R12 XR1 (Period Based)YYSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 1'[Currency Code X-Rate 1]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY'[Currency Code]) ,"@GLAmount",CALCULATE([CFC R12]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 1'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
CFC R12 XR1 (YTD Based)YYSUMN VAR lastDatePrevMonth = LASTDATE(PARALLELPERIOD('REPORTING PERIOD'[ID],0 , month)) VAR firstDatePrevYear = FIRSTDATE(PARALLELPERIOD('REPORTING PERIOD'[ID],-11 , month)) RETURN CALCULATE ( [CFC XR1 (YTD Based)], DATESBETWEEN ( 'REPORTING PERIOD'[ID], firstDatePrevYear, IF ( ISBLANK(lastDatePrevMonth), CALCULATE(MIN('REPORTING PERIOD'[ID]), ALL('REPORTING PERIOD')), lastDatePrevMonth ) ) )
CFC R12 XR2 (Period Based)YYSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 2'[Currency Code X-Rate 2]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY 2'[Currency Code]) ,"@GLAmount",CALCULATE([CFC R12]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 2'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
CFC R12 XR2 (YTD Based)YYSUMN VAR lastDatePrevMonth = LASTDATE(PARALLELPERIOD('REPORTING PERIOD'[ID],0 , month)) VAR firstDatePrevYear = FIRSTDATE(PARALLELPERIOD('REPORTING PERIOD'[ID],-11 , month)) RETURN CALCULATE ( [CFC XR2 (YTD Based)], DATESBETWEEN ( 'REPORTING PERIOD'[ID], firstDatePrevYear, IF ( ISBLANK(lastDatePrevMonth), CALCULATE(MIN('REPORTING PERIOD'[ID]), ALL('REPORTING PERIOD')), lastDatePrevMonth ) ) )
CFC TransYNSUMNSUM('GL ANALYSIS'[CFC_PERIOD_CURR])
CFC XR1 (Period Based)YNSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 1'[Currency Code X-Rate 1]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY'[Currency Code]) ,"@GLAmount",CALCULATE([CFC]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 1'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
CFC XR1 (YTD Based)YYSUMNIF ( 'GL ANALYSIS MEASURES'[HasOneValuePeriod] = FALSE(),"", [CFC YTD XR1 (YTD Based)] - [CFC OB XR1 (YTD Based)] )
CFC XR2 (Period Based)YNSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 2'[Currency Code X-Rate 2]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY 2'[Currency Code]) ,"@GLAmount",CALCULATE([CFC]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 2'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
CFC XR2 (YTD Based)YYSUMNIF ( 'GL ANALYSIS MEASURES'[HasOneValuePeriod] = FALSE(),"", [CFC YTD XR2 (YTD Based)] - [CFC OB XR2 (YTD Based)] )
CFC YTD TransYYSUMNCALCULATE([CFC Trans], DATESYTD('REPORTING PERIOD'[ID])) + CALCULATE(SUM('GL ANALYSIS'[CFC_OB_PERIOD_CURR]), DATESYTD('REPORTING PERIOD'[ID]))
CFC YTD XR1 (Period Based)YYSUMN // calulcates the YTD value based on CFC based on Cross Rate 1 table according to the formula: // 'opening balance period zero using rate XR1 last date prev year' + Sum of CFC value * XR1 for each period up to current context period) [CFCOBPeriodZeroXR1] + CALCULATE([CFC XR1 (Period Based)], DATESYTD('REPORTING PERIOD'[ID]) )
CFC YTD XR1 (YTD Based)YYSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 1'[Currency Code X-Rate 1]), VAR RestatedAmount = ADDCOLUMNS ( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY'[Currency Code]) ,"@GLAmount",CALCULATE([CFC YTD]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 1'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
CFC YTD XR2 (Period Based)YYSUMN // calulcates the YTD value based on CFC based on Cross Rate 2 table according to the formula: // 'opening balance period zero using rate XR2 last date prev year' + Sum of CFC value * XR2 for each period up to current context period) [CFCOBPeriodZeroXR2] + CALCULATE([CFC XR2 (Period Based)], DATESYTD('REPORTING PERIOD'[ID]) )
CFC YTD XR2 (YTD Based)YYSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 2'[Currency Code X-Rate 2]), VAR RestatedAmount = ADDCOLUMNS ( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY 2'[Currency Code]) ,"@GLAmount",CALCULATE([CFC YTD]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 2'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
CFCOBPeriodZeroYYSUMN //Calulcates the incoming balance related to [CFC], acc period 0, as defined in the underlying data source // The idea is to calculate the same value for all periods VAR UntilDate = MAX('REPORTING PERIOD'[Period Until Date]) VAR LastDatePY = MAX('REPORTING PERIOD'[Max Reporting Date PY]) VAR DiffInDays = DATEDIFF(LastDatePY, UntilDate, DAY) RETURN CALCULATE ( // go back to last data in previous reporting year + 1 [CFC OB], DATEADD('REPORTING PERIOD'[ID],-DiffInDays+1, DAY) )
CFCOBPeriodZeroXR1YYSUMN // Calulates the OB in acc period 0 (as defined in the transactional source) into the selected XRate1 currency using the rate as // defined for the last date in the previous reporting yser. Should be the same value for any reporting period IF( HASONEVALUE('CURRENCY CODE X-RATE 1'[Currency Code X-Rate 1]), VAR RestatedAmount = ADDCOLUMNS ( SUMMARIZE ( 'GL ANALYSIS' , 'REPORTING PERIOD'[ID], 'REPORTING FROM CURRENCY'[Currency Code] ) ,"@GLAmount", CALCULATE([CFCOBPeriodZero]) ,"@XRATE", CALCULATE(SELECTEDVALUE('X-RATES 1'[PREV_YEAR_LAST_PERIOD_RATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRATE]) RETURN XAmount )
CFCOBPeriodZeroXR2YYSUMN // Calculates the OB in acc period 0 (as defined in the transactional source) into the selected XRate2 currency using the rate as // defined for the last date in the previous reporting user. Should be the same value for any reporting period IF( HASONEVALUE('CURRENCY CODE X-RATE 2'[Currency Code X-Rate 2]), VAR RestatedAmount = ADDCOLUMNS ( SUMMARIZE ( 'GL ANALYSIS' , 'REPORTING PERIOD'[ID], 'REPORTING FROM CURRENCY 2'[Currency Code] ) ,"@GLAmount", CALCULATE([CFCOBPeriodZero]) ,"@XRATE", CALCULATE(SELECTEDVALUE('X-RATES 2'[PREV_YEAR_LAST_PERIOD_RATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRATE]) RETURN XAmount )
HasOneValuePeriodYNN/AYHASONEVALUE('REPORTING PERIOD'[Reporting Period])
NFCYNSUMNSUM('GL ANALYSIS'[NFC_PERIOD_DOM])
NFC OBYNSUMNIF(ISBLANK([NFC YTD]) , BLANK() ,([NFC YTD] - [NFC]))
NFC OB TransYNSUMNIF(ISBLANK([NFC YTD Trans]) , BLANK() ,([NFC YTD Trans] - [NFC Trans]))
NFC OB XR1 (Period Based)YNSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 1'[Currency Code X-Rate 1]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY'[Currency Code]) ,"@GLAmount",CALCULATE([NFC OB]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 1'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
NFC OB XR1 (YTD Based)YYSUMN VAR CurrPeriod = MAX('REPORTING PERIOD'[Reporting Period]) VAR MonthsInPeriod = MAX('REPORTING PERIOD'[Months In Period]) RETURN IF ( CurrPeriod = 1, CALCULATE([NFC OB XR1 (Period Based)]), CALCULATE([NFC YTD XR1 (YTD Based)], DATEADD('REPORTING PERIOD'[ID], -MonthsInPeriod, MONTH) ) )
NFC OB XR2 (Period Based)YNSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 2'[Currency Code X-Rate 2]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY 2'[Currency Code]) ,"@GLAmount",CALCULATE([NFC OB]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 2'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
NFC OB XR2 (YTD Based)YYSUMN VAR CurrPeriod = MAX('REPORTING PERIOD'[Reporting Period]) VAR MonthsInPeriod = MAX('REPORTING PERIOD'[Months In Period]) RETURN IF ( CurrPeriod = 1, CALCULATE([NFC OB XR2 (Period Based)]), CALCULATE([NFC YTD XR2 (YTD Based)], DATEADD('REPORTING PERIOD'[ID], -MonthsInPeriod, MONTH) ) )
NFC R12 TransYYSUMNCALCULATE([NFC Trans], DATESBETWEEN('REPORTING PERIOD'[ID], FIRSTDATE(PARALLELPERIOD('REPORTING PERIOD'[ID],-11,month)), LASTDATE(PARALLELPERIOD('REPORTING PERIOD'[ID],0,month)) ) )
NFC R12 XR1 (Period Based)YYSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 1'[Currency Code X-Rate 1]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY'[Currency Code]) ,"@GLAmount",CALCULATE([NFC R12]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 1'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
NFC R12 XR1 (YTD Based)YYSUMN VAR lastDatePrevMonth = LASTDATE(PARALLELPERIOD('REPORTING PERIOD'[ID],0 , month)) VAR firstDatePrevYear = FIRSTDATE(PARALLELPERIOD('REPORTING PERIOD'[ID],-11 , month)) RETURN CALCULATE ( [NFC XR1 (YTD Based)], DATESBETWEEN ( 'REPORTING PERIOD'[ID], firstDatePrevYear, IF ( ISBLANK(lastDatePrevMonth), CALCULATE(MIN('REPORTING PERIOD'[ID]), ALL('REPORTING PERIOD')), lastDatePrevMonth ) ) )
NFC R12 XR2 (Period Based)YYSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 2'[Currency Code X-Rate 2]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY 2'[Currency Code]) ,"@GLAmount",CALCULATE([NFC R12]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 2'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
NFC R12 XR2 (YTD Based)YYSUMN VAR lastDatePrevMonth = LASTDATE(PARALLELPERIOD('REPORTING PERIOD'[ID],0 , month)) VAR firstDatePrevYear = FIRSTDATE(PARALLELPERIOD('REPORTING PERIOD'[ID],-11 , month)) RETURN CALCULATE ( [NFC XR2 (YTD Based)], DATESBETWEEN ( 'REPORTING PERIOD'[ID], firstDatePrevYear, IF ( ISBLANK(lastDatePrevMonth), CALCULATE(MIN('REPORTING PERIOD'[ID]), ALL('REPORTING PERIOD')), lastDatePrevMonth ) ) )
NFC TransYNSUMNSUM('GL ANALYSIS'[NFC_PERIOD_CURR])
NFC XR1 (Period Based)YNSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 1'[Currency Code X-Rate 1]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY'[Currency Code]) ,"@GLAmount",CALCULATE([NFC]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 1'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
NFC XR1 (YTD Based)YYSUMNIF ( 'GL ANALYSIS MEASURES'[HasOneValuePeriod] = FALSE(),"", [NFC YTD XR1 (YTD Based)] - [NFC OB XR1 (YTD Based)] )
NFC XR2 (Period Based)YNSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 2'[Currency Code X-Rate 2]), VAR RestatedAmount = ADDCOLUMNS( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY 2'[Currency Code]) ,"@GLAmount",CALCULATE([NFC]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 2'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
NFC XR2 (YTD Based)YYSUMNIF ( 'GL ANALYSIS MEASURES'[HasOneValuePeriod] = FALSE(),"", [NFC YTD XR2 (YTD Based)] - [NFC OB XR2 (YTD Based)] )
NFC YTD TransYYSUMNCALCULATE([NFC Trans], DATESYTD('REPORTING PERIOD'[ID])) + CALCULATE(SUM('GL ANALYSIS'[NFC_OB_PERIOD_CURR]), DATESYTD('REPORTING PERIOD'[ID]))
NFC YTD XR1 (Period Based)YYSUMN // calulcates the YTD value based on NFC based on Cross Rate 1 table according to the formula: // 'opening balance period zero using rate XR1 last date prev year' + Sum of NFC value * XR1 for each period up to current context period) [NFCOBPeriodZeroXR1] + CALCULATE([NFC XR1 (Period Based)], DATESYTD('REPORTING PERIOD'[ID]) )
NFC YTD XR1 (YTD Based)YYSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 1'[Currency Code X-Rate 1]), VAR RestatedAmount = ADDCOLUMNS ( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY'[Currency Code]) ,"@GLAmount",CALCULATE([NFC YTD]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 1'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
NFC YTD XR2 (Period Based)YYSUMN // calulcates the YTD value based on NFC based on Cross Rate 2 table according to the formula: // 'opening balance period zero using rate XR2 last date prev year' + Sum of NFC value * XR2 for each period up to current context period) [NFCOBPeriodZeroXR2] + CALCULATE([NFC XR2 (Period Based)], DATESYTD('REPORTING PERIOD'[ID]) )
NFC YTD XR2 (YTD Based)YYSUMN IF(HASONEVALUE('CURRENCY CODE X-RATE 2'[Currency Code X-Rate 2]), VAR RestatedAmount = ADDCOLUMNS ( SUMMARIZE('GL ANALYSIS' ,'REPORTING PERIOD'[ID],'REPORTING FROM CURRENCY 2'[Currency Code]) ,"@GLAmount",CALCULATE([NFC YTD]) ,"@XRates" ,CALCULATE(SELECTEDVALUE('X-RATES 2'[CURRENCYRATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRates]) RETURN XAmount )
NFCOBPeriodZeroYYSUMN //Calulcates the incoming balance related to [NFC], acc period 0, as defined in the underlying data source // The idea is to calculate the same value for all periods VAR UntilDate = MAX('REPORTING PERIOD'[Period Until Date]) VAR LastDatePY = MAX('REPORTING PERIOD'[Max Reporting Date PY]) VAR DiffInDays = DATEDIFF(LastDatePY, UntilDate, DAY) RETURN CALCULATE ( // go back to last data in previous reporting year + 1 [NFC OB], DATEADD('REPORTING PERIOD'[ID],-DiffInDays+1, DAY) )
NFCOBPeriodZeroXR1YYSUMN // Calulates the OB in acc period 0 (as defined in the transactional source) into the selected XRate1 currency using the rate as // defined for the last date in the previous reporting yser. Should be the same value for any reporting period IF( HASONEVALUE('CURRENCY CODE X-RATE 1'[Currency Code X-Rate 1]), VAR RestatedAmount = ADDCOLUMNS ( SUMMARIZE ( 'GL ANALYSIS' , 'REPORTING PERIOD'[ID], 'REPORTING FROM CURRENCY'[Currency Code] ) ,"@GLAmount", CALCULATE([NFCOBPeriodZero]) ,"@XRATE", CALCULATE(SELECTEDVALUE('X-RATES 1'[PREV_YEAR_LAST_PERIOD_RATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRATE]) RETURN XAmount )
NFCOBPeriodZeroXR2YYSUMN // Calculates the OB in acc period 0 (as defined in the transactional source) into the selected XRate2 currency using the rate as // defined for the last date in the previous reporting user. Should be the same value for any reporting period IF( HASONEVALUE('CURRENCY CODE X-RATE 2'[Currency Code X-Rate 2]), VAR RestatedAmount = ADDCOLUMNS ( SUMMARIZE ( 'GL ANALYSIS' , 'REPORTING PERIOD'[ID], 'REPORTING FROM CURRENCY 2'[Currency Code] ) ,"@GLAmount", CALCULATE([NFCOBPeriodZero]) ,"@XRATE", CALCULATE(SELECTEDVALUE('X-RATES 2'[PREV_YEAR_LAST_PERIOD_RATE])) ) VAR XAmount = SUMX(RestatedAmount, [@GLAmount] * [@XRATE]) RETURN XAmount )
Selected ActPY MeasureYCALCULATE(MIN('MEASURE LIST COMPARISON'[Row Index]), ALLEXCEPT('MEASURE LIST COMPARISON','MEASURE LIST COMPARISON'[Dim Comparison Id]), 'MEASURE LIST COMPARISON'[Dim Comparison Id]=1, 'MEASURE LIST COMPARISON'[Dim Currency Type Id]=VALUES('SWITCH CURRENCY TYPE'[Row Index]), 'MEASURE LIST COMPARISON'[Dim Time Perspective Id]=VALUES('SWITCH TIME PERSPECTIVE'[Row Index]))
Selected Actual MeasureYMIN('MEASURE LIST ACTUAL'[Row Index])
Selected Actual XR1 (Period Based) MeasureYCALCULATE(MIN('MEASURE LIST ACTUAL'[Row Index]), ALLEXCEPT('MEASURE LIST ACTUAL','MEASURE LIST ACTUAL'[Dim Currency Type Id]), 'MEASURE LIST ACTUAL'[Dim Currency Type Id]=3, 'MEASURE LIST ACTUAL'[Dim Time Perspective Id]=VALUES('SWITCH TIME PERSPECTIVE'[Row Index]))
Selected Actual XR2 (Period Based) MeasureYCALCULATE(MIN('MEASURE LIST ACTUAL'[Row Index]), ALLEXCEPT('MEASURE LIST ACTUAL','MEASURE LIST ACTUAL'[Dim Currency Type Id]), 'MEASURE LIST ACTUAL'[Dim Currency Type Id]=4, 'MEASURE LIST ACTUAL'[Dim Time Perspective Id]=VALUES('SWITCH TIME PERSPECTIVE'[Row Index]))
Selected Bud MeasureYCALCULATE(MIN('MEASURE LIST COMPARISON'[Row Index]), ALLEXCEPT('MEASURE LIST COMPARISON','MEASURE LIST COMPARISON'[Dim Comparison Id]), 'MEASURE LIST COMPARISON'[Dim Comparison Id]=2, 'MEASURE LIST COMPARISON'[Dim Currency Type Id]=VALUES('SWITCH CURRENCY TYPE'[Row Index]), 'MEASURE LIST COMPARISON'[Dim Time Perspective Id]=VALUES('SWITCH TIME PERSPECTIVE'[Row Index]))
Selected CFC MeasureYCALCULATE(MIN('MEASURE LIST COMPARISON'[Row Index]), ALLEXCEPT('MEASURE LIST COMPARISON','MEASURE LIST COMPARISON'[Dim Comparison Id]), 'MEASURE LIST COMPARISON'[Dim Comparison Id]=3, 'MEASURE LIST COMPARISON'[Dim Currency Type Id]=VALUES('SWITCH CURRENCY TYPE'[Row Index]), 'MEASURE LIST COMPARISON'[Dim Time Perspective Id]=VALUES('SWITCH TIME PERSPECTIVE'[Row Index]))
Selected Comparison MeasureYMIN('MEASURE LIST COMPARISON'[Row Index])
Selected Comparison SwitchYMIN('SWITCH COMPARISON MEASURE'[Row Index])
Selected Currency SwitchYMIN('SWITCH CURRENCY TYPE'[Row Index])
Selected DisplayUnit SwitchYMIN('SWITCH DISPLAY UNIT'[Factor])
Selected NFC MeasureYCALCULATE(MIN('MEASURE LIST COMPARISON'[Row Index]), ALLEXCEPT('MEASURE LIST COMPARISON','MEASURE LIST COMPARISON'[Dim Comparison Id]), 'MEASURE LIST COMPARISON'[Dim Comparison Id]=4, 'MEASURE LIST COMPARISON'[Dim Currency Type Id]=VALUES('SWITCH CURRENCY TYPE'[Row Index]), 'MEASURE LIST COMPARISON'[Dim Time Perspective Id]=VALUES('SWITCH TIME PERSPECTIVE'[Row Index]))
Selected Time SwitchYMIN('SWITCH TIME PERSPECTIVE'[Row Index])
Switch ActualN[Selected DisplayUnit Switch] * SWITCH([Selected Actual Measure], 1, [ACT], 2, [ACT YTD], 3, [ACT R12], 4, [ACT Trans], 5, [ACT YTD Trans], 6, [ACT R12 Trans], 7, [ACT XR1 (Period Based)], 8, [ACT YTD XR1 (Period Based)], 9, [ACT R12 XR1 (Period Based)], 10, [ACT XR2 (Period Based)], 11, [ACT YTD XR2 (Period Based)], 12, [ACT R12 XR2 (Period Based)], 13, [ACT XR1 (YTD Based)], 14, [ACT YTD XR1 (YTD Based)], 15, [ACT R12 XR1 (YTD Based)], 16, [ACT XR2 (YTD Based)], 17, [ACT YTD XR2 (YTD Based)], 18, [ACT R12 XR2 (YTD Based)] )
Switch Actual (Acc Calendar)N[Selected DisplayUnit Switch] * SWITCH([Selected Actual Measure], 1, [ACT (Acc Calendar)], 2, [ACT YTD (Acc Calendar)] )
Switch Actual (Balance Sheet Drill Through)N[Switch Actual]
Switch Actual (For Drill Through)N[Switch Actual]
Switch Comp (ActPY)N[Selected DisplayUnit Switch] * SWITCH([Selected ActPY Measure], 1, [ACT PY], 5, [ACT PY Trans], 9, [ACT PY XR1 (Period Based)], 13, [ACT PY XR2 (Period Based)], 17, [ACT PY XR1 (YTD Based)], 21, [ACT PY XR2 (YTD Based)], 25, [ACT PY YTD], 29, [ACT PY YTD Trans], 33, [ACT PY YTD XR1 (Period Based)], 37, [ACT PY YTD XR2 (Period Based)], 41, [ACT PY YTD XR1 (YTD Based)], 45, [ACT PY YTD XR2 (YTD Based)], 49, [ACT PY R12], 53, [ACT PY R12 Trans], 57, [ACT PY R12 XR1 (Period Based)], 61, [ACT PY R12 XR2 (Period Based)], 65, [ACT PY R12 XR1 (YTD Based)], 69, [ACT PY R12 XR2 (YTD Based)] )
Switch Comp (Bud)N[Selected DisplayUnit Switch] * SWITCH([Selected Bud Measure], 2, [BUD], 6, [BUD Trans], 10, [BUD XR1 (Period Based)], 14, [BUD XR2 (Period Based)], 18, [BUD XR1 (YTD Based)], 22, [BUD XR2 (YTD Based)], 26, [BUD YTD], 30, [BUD YTD Trans], 34, [BUD YTD XR1 (Period Based)], 38, [BUD YTD XR2 (Period Based)], 42, [BUD YTD XR1 (YTD Based)], 46, [BUD YTD XR2 (YTD Based)], 50, [BUD R12], 54, [BUD R12 Trans], 58, [BUD R12 XR1 (Period Based)], 62, [BUD R12 XR2 (Period Based)], 66, [BUD R12 XR1 (YTD Based)], 70, [BUD R12 XR2 (YTD Based)] )
Switch Comp (CFC)N[Selected DisplayUnit Switch] * SWITCH([Selected CFC Measure], 3, [CFC], 7, [CFC Trans], 11, [CFC XR1 (Period Based)], 15, [CFC XR2 (Period Based)], 19, [CFC XR1 (YTD Based)], 23, [CFC XR2 (YTD Based)], 27, [CFC YTD], 31, [CFC YTD Trans], 35, [CFC YTD XR1 (Period Based)], 39, [CFC YTD XR2 (Period Based)], 43, [CFC YTD XR1 (YTD Based)], 47, [CFC YTD XR2 (YTD Based)], 51, [CFC R12], 55, [CFC R12 Trans], 59, [CFC R12 XR1 (Period Based)], 63, [CFC R12 XR2 (Period Based)], 67, [CFC R12 XR1 (YTD Based)], 71, [CFC R12 XR2 (YTD Based)] )
Switch Comp (NFC)N[Selected DisplayUnit Switch] * SWITCH([Selected NFC Measure], 4, [NFC], 8, [NFC Trans], 12, [NFC XR1 (Period Based)], 16, [NFC XR2 (Period Based)], 20, [NFC XR1 (YTD Based)], 24, [NFC XR2 (YTD Based)], 28, [NFC YTD], 32, [NFC YTD Trans], 36, [NFC YTD XR1 (Period Based)], 40, [NFC YTD XR2 (Period Based)], 44, [NFC YTD XR1 (YTD Based)], 48, [NFC YTD XR2 (YTD Based)], 52, [NFC R12], 56, [NFC R12 Trans], 60, [NFC R12 XR1 (Period Based)], 64, [NFC R12 XR2 (Period Based)], 68, [NFC R12 XR1 (YTD Based)], 72, [NFC R12 XR2 (YTD Based)] )
Switch ComparisonN[Selected DisplayUnit Switch] * SWITCH([Selected Comparison Measure], 1, [ACT PY], 2, [BUD], 3, [CFC], 4, [NFC], 5, [ACT PY Trans], 6, [BUD Trans], 7, [CFC Trans], 8, [NFC Trans], 9, [ACT PY XR1 (Period Based)], 10, [BUD XR1 (Period Based)], 11, [CFC XR1 (Period Based)], 12, [NFC XR1 (Period Based)], 13, [ACT PY XR2 (Period Based)], 14, [BUD XR2 (Period Based)], 15, [CFC XR2 (Period Based)], 16, [NFC XR2 (Period Based)], 17, [ACT PY XR1 (YTD Based)], 18, [BUD XR1 (YTD Based)], 19, [CFC XR1 (YTD Based)], 20, [NFC XR1 (YTD Based)], 21, [ACT PY XR2 (YTD Based)], 22, [BUD XR2 (YTD Based)], 23, [CFC XR2 (YTD Based)], 24, [NFC XR2 (YTD Based)], 25, [ACT PY YTD], 26, [BUD YTD], 27, [CFC YTD], 28, [NFC YTD], 29, [ACT PY YTD Trans], 30, [BUD YTD Trans], 31, [CFC YTD Trans], 32, [NFC YTD Trans], 33, [ACT PY YTD XR1 (Period Based)], 34, [BUD YTD XR1 (Period Based)], 35, [CFC YTD XR1 (Period Based)], 36, [NFC YTD XR1 (Period Based)], 37, [ACT PY YTD XR2 (Period Based)], 38, [BUD YTD XR2 (Period Based)], 39, [CFC YTD XR2 (Period Based)], 40, [NFC YTD XR2 (Period Based)], 41, [ACT PY YTD XR1 (YTD Based)], 42, [BUD YTD XR1 (YTD Based)], 43, [CFC YTD XR1 (YTD Based)], 44, [NFC YTD XR1 (YTD Based)], 45, [ACT PY YTD XR2 (YTD Based)], 46, [BUD YTD XR2 (YTD Based)], 47, [CFC YTD XR2 (YTD Based)], 48, [NFC YTD XR2 (YTD Based)], 49, [ACT PY R12], 50, [BUD R12], 51, [CFC R12], 52, [NFC R12], 53, [ACT PY R12 Trans], 54, [BUD R12 Trans], 55, [CFC R12 Trans], 56, [NFC R12 Trans], 57, [ACT PY R12 XR1 (Period Based)], 58, [BUD R12 XR1 (Period Based)], 59, [CFC R12 XR1 (Period Based)], 60, [NFC R12 XR1 (Period Based)], 61, [ACT PY R12 XR2 (Period Based)], 62, [BUD R12 XR2 (Period Based)], 63, [CFC R12 XR2 (Period Based)], 64, [NFC R12 XR2 (Period Based)], 65, [ACT PY R12 XR1 (YTD Based)], 66, [BUD R12 XR1 (YTD Based)], 67, [CFC R12 XR1 (YTD Based)], 68, [NFC R12 XR1 (YTD Based)], 69, [ACT PY R12 XR2 (YTD Based)], 70, [BUD R12 XR2 (YTD Based)], 71, [CFC R12 XR2 (YTD Based)], 72, [NFC R12 XR2 (YTD Based)] )
Switch DiffN[Switch Actual] - [Switch Comparison]
Switch Diff (%)NDIVIDE([Switch Diff],ABS([Switch Comparison]), Blank())
Switch Diff (ActPY%)NDIVIDE([Switch Diff (ActPY)],ABS([Switch Comp (ActPY)]), Blank())
Switch Diff (ActPY)N[Switch Actual] - [Switch Comp (ActPY)]
Switch Diff (Bud%)NDIVIDE([Switch Diff (Bud)],ABS([Switch Comp (Bud)]), Blank())
Switch Diff (Bud)N[Switch Actual] - [Switch Comp (Bud)]
Switch XR DiffN[Switch XR1 (Period Based)] - [Switch XR2 (Period Based)]
Switch XR Diff (%)NDIVIDE([Switch XR Diff],ABS([Switch XR2 (Period Based)]), Blank())
Switch XR1 (Period Based)N[Selected DisplayUnit Switch] * SWITCH([Selected Actual XR1 (Period Based) Measure], 7, [ACT XR1 (Period Based)], 8, [ACT YTD XR1 (Period Based)], 9, [ACT R12 XR1 (Period Based)] )
Switch XR2 (Period Based)N[Selected DisplayUnit Switch] * SWITCH([Selected Actual XR2 (Period Based) Measure], 10, [ACT XR2 (Period Based)], 11, [ACT YTD XR2 (Period Based)], 12, [ACT R12 XR2 (Period Based)] )

Time Intelligence Measures

Time based measures are calculated in the cube with respect to other measures. The table below defines the meaning/definition of  the different time measures. These measures need to be used with a specific time dimension hierarchy [REPORTING_DATE].[RepDateMFHy].

Measure Meaning
YTD Aggregated value for current month in current  year. E.g. for period 202010 Ytd represents sum of periods 202000-202010.
R12 For a given period, the sum all months from one year back up to the previous month. E.g. Rolling 12 for 202010 is the sum of months 201910 - 202009
PY Previous Year
The value of the corresponding month one year back. E.g. for month 202010, the value of month 201910.
YTD PY Year to Date Previous Year
Aggregated value for corresponding month one year back. E.g. for month 202010 YTD Previous Year represents sum of months 201901-201910.
R12 PY Rolling 12 (completed) Months Previous Year
For a given month, first going one year back, then taking the sum of all months from one (more) year back up to the previous month. E.g. for month 202010 the sum of month 201810-201909
Avg XXX Ytd Sum XXX YTD/Count XXX YTD
Avg XXX R12 Sum XXX R12/Count XXX R12
XXX % YTD Count XXX YTD/Count YYY YTD
XXX % R12 Count XXX R12/Count XXX R12

USED BY MODEL(S)

Model Name Product Area
General LedgerFinancials

Data source Information

The data source for this object is defined using IFS Developer Tool. The data source contains a number of transformations where the model reads data from the last step, i.e. the Data source view name (DW Source View Name).

Additional information can be found in the online documentation of Information Sources.

Model Table DW Source view (SQL Server) BI Access View Referenced Information Source Recommended Access Type
GL ANALYSIS MEASURESFACT_TRANS_BAL_SET_AM_CONF_TMFACT_GL_TRANSACTION_BI, FACT_GL_BALANCE_BI, FACT_GL_PERIOD_BUDGET_BI, FACT_PLAN_TRANS_VALID_BIFACT_GL_TRANSACTION, FACT_GL_BALANCE, FACT_GL_PERIOD_BUDGET, FACT_PLAN_TRANS_VALIDData Mart